package ctrl

import (
	"net/http"
	"strconv"
	"strings"
)

// 读取http表单参数, 返回string类型
func GetParamString(request *http.Request, key string) string {
	arr, ok := request.Form[key]
	if !ok || len(arr) <= 0 {
		return ""
	}
	return strings.TrimSpace(arr[0])
}

// 读取http表单参数, 返回string类型
func GetParamStringD(request *http.Request, key string, defaultVal string) string {
	arr, ok := request.Form[key]
	if !ok || len(arr) <= 0 {
		return defaultVal
	}
	return strings.TrimSpace(arr[0])
}

// 读取http表单参数, 返回int64类型
func GetParamInt64(request *http.Request, key string) int64 {
	arr, ok := request.Form[key]
	if !ok || len(arr) <= 0 {
		return 0
	}
	n, _ := strconv.ParseInt(arr[0], 10, 64)
	return n
}

// 读取http表单参数, 返回int64类型
func GetParamInt64D(request *http.Request, key string, defaultVal int64) int64 {
	arr, ok := request.Form[key]
	if !ok || len(arr) <= 0 || len(arr[0]) == 0 {
		return defaultVal
	}
	n, _ := strconv.ParseInt(arr[0], 10, 64)
	return n
}

// 读取http表单参数, 返回int类型
func GetParamInt(request *http.Request, key string) int {
	arr, ok := request.Form[key]
	if !ok || len(arr) <= 0 {
		return 0
	}
	n, _ := strconv.Atoi(arr[0])
	return n
}

// 读取http表单参数, 返回int类型
func GetParamIntD(request *http.Request, key string, defaultVal int) int {
	arr, ok := request.Form[key]
	if !ok || len(arr) <= 0 || len(arr[0]) == 0 {
		return defaultVal
	}
	n, _ := strconv.Atoi(arr[0])
	return n
}
